package name.jautzy.esi.client.model;

import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;

import javax.persistence.Id;

import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Unindexed;
import com.googlecode.objectify.annotation.Cached;

@Cached
@Entity
public class Fit implements Serializable {
	@Id private String id;
	
	@Unindexed private long shipId = 641; 
	
	@Unindexed private List<String> highSlots;
	@Unindexed private List<String> medSlots;
	@Unindexed private List<String> lowSlots;
	@Unindexed private List<String> rigSlots;
	@Unindexed private List<String> subsystems;
	
	@Unindexed private List<Integer> highSlotsIcon;
	@Unindexed private List<Integer> medSlotsIcon;
	@Unindexed private List<Integer> lowSlotsIcon;
	@Unindexed private List<Integer> rigSlotsIcon;
	@Unindexed private List<Integer> subsystemsIcon;
	
	@Unindexed private double mass= 0;
	@Unindexed private long maxHighSlots = 0;
	@Unindexed private long maxMedSlots= 0;
	@Unindexed private long maxLowSlots= 0;
	@Unindexed private long maxRigSlots= 0;
	@Unindexed private long maxTurrets= 0;
	@Unindexed private long nbTurrets= 0;
	@Unindexed private long maxLaunchers= 0;
	@Unindexed private long nbLaunchers= 0;
	@Unindexed private long maxCalibration= 0;
	@Unindexed private long calibration= 0;
	@Unindexed private String turretName=null;
	@Unindexed private String launcherName=null;
	@Unindexed private String droneName=null;
	@Unindexed private String turretAmmoName=null;
	@Unindexed private String launcherAmmoName=null;
	@Unindexed private long nbDrones=0;
	
	@Unindexed private double maxCpu=0;
	@Unindexed private double cpu=0;
	@Unindexed private double maxPower=0;
	@Unindexed private double power = 0;
	@Unindexed private double maxDroneBw=0;
	@Unindexed private double droneCapacity=0;
	@Unindexed private double droneBw = 0;
	@Unindexed private long maxDrones;
	
	@Unindexed private double emSR=0;
	@Unindexed private double thSR=0;
	@Unindexed private double kiSR=0;
	@Unindexed private double exSR=0;
	@Unindexed private double shieldHP=0;
	@Unindexed private double shieldRechTime=0;
	@Unindexed private double shieldBoost;
	@Unindexed private double shieldBoostDuration;
	
	@Unindexed private double emAR=0;
	@Unindexed private double thAR=0;
	@Unindexed private double kiAR=0;
	@Unindexed private double exAR=0;
	@Unindexed private double armorHP=0;
	@Unindexed private double armorRepair;
	@Unindexed private double armorRepairDuration;
	
	@Unindexed private double structResonance=0;
	@Unindexed private double structHP=0;
	
	@Unindexed private double capacitor=0;
	@Unindexed private double capRechargeTime=0;
	@Unindexed private double capUsage=0;
	
	@Unindexed private double maxMissileDps;
	@Unindexed private double missileAlpha=0;
	@Unindexed private double missileExploVelocity=0;
	@Unindexed private double missileExploRadius=0;
	@Unindexed private double missileDRF=0;
	@Unindexed private double missileVelocity=0;
	@Unindexed private double missileFlightTime=0;
	@Unindexed private double missileRof=0;
	@Unindexed private boolean missileTech2 = false;
	@Unindexed private boolean torpedo = false;
	
	@Unindexed private double maxTurretDps;
	@Unindexed private double turretAlpha;
	@Unindexed private double turretCapa;
	@Unindexed private double turretOptimal;
	@Unindexed private double turretFalloff;
	@Unindexed private double turretTracking;
	@Unindexed private double turretSignature;
	@Unindexed private double turretRof;
	@Unindexed private boolean turretTech2 = false;
	
	@Unindexed private double maxDroneDps;
	@Unindexed private double droneAlpha=0;
	@Unindexed private double droneOptimal=0;
	@Unindexed private double droneFalloff=0;
	@Unindexed private double droneTracking=0;
	@Unindexed private double droneSignature=0;
	@Unindexed private double droneRof=0;
	@Unindexed private double droneRange;
	@Unindexed private double droneVelocity=0;
	@Unindexed private boolean droneTech2=false;
	
	@Unindexed private double velocity=0;
	@Unindexed private boolean booster = false;
	@Unindexed private double boostedVelocity = 0;
	@Unindexed private double boostVeloFactor= 0;
	@Unindexed private double boostRadiusFactor= 0;
	@Unindexed private double boostCapUsage= 0;
	@Unindexed private double boostMass= 0;
	@Unindexed private double boostedMass= 0;
	@Unindexed private double warpSpeed=0;
	@Unindexed private double signature=0;
	@Unindexed private double cargohold=0;
	@Unindexed private double targetRange=0;
	@Unindexed private double sensorStrength=0;
	@Unindexed private double maxTarget=0;
	@Unindexed private double scanResolution=0;
	@Unindexed private double agility=0;
	
	@Unindexed private double remoteArmorAmount=0;
	@Unindexed private double remoteArmorRof=0;
	
	@Unindexed private double remoteShieldAmount=0;
	@Unindexed private double remoteShieldRof=0;
	
	@Unindexed private String eftFit = null;
	
	@Unindexed private String maker = null;
	
	@Unindexed private boolean cloak = false;
	@Unindexed private boolean scramble = false;
	@Unindexed private boolean ecm = false;
	@Unindexed private boolean web = false;
	@Unindexed private boolean warpImmune = false;
	@Unindexed private boolean paint = false;
	@Unindexed private boolean trackingDisrupt = false;
	@Unindexed private boolean nos = false;
	@Unindexed private boolean neutra = false;
	@Unindexed private boolean damp = false;
	@Unindexed private boolean capship = false;
	@Unindexed private boolean remoteShield = false;
	@Unindexed private boolean remoteArmor = false;
	@Unindexed private boolean cynosural = false;
	
	@Unindexed private double targetPaintMod = 1.0;
	@Unindexed private double targetSpeedMod = 1.0;
	
	
	public Fit() {
		setHighSlots(new LinkedList<String>());
		setMedSlots(new LinkedList<String>());
		setLowSlots(new LinkedList<String>());
		setRigSlots(new LinkedList<String>());
		setSubsystems(new LinkedList<String>());
		
		setHighSlotsIcon(new LinkedList<Integer>());
		setMedSlotsIcon(new LinkedList<Integer>());
		setLowSlotsIcon(new LinkedList<Integer>());
		setRigSlotsIcon(new LinkedList<Integer>());
		setSubsystemsIcon(new LinkedList<Integer>());
	}

	public void setMass(double mass) {
		this.mass = mass;
	}

	public double getMass() {
		return mass;
	}
	
	public void addMass(double mass) {
		this.mass += mass;
	}
	

	public void setHighSlots(List<String> highSlots) {
		this.highSlots = highSlots;
	}

	public List<String> getHighSlots() {
		return highSlots;
	}

	public void setMedSlots(List<String> medSlots) {
		this.medSlots = medSlots;
	}

	public List<String> getMedSlots() {
		return medSlots;
	}

	public void setLowSlots(List<String> lowSlots) {
		this.lowSlots = lowSlots;
	}

	public List<String> getLowSlots() {
		return lowSlots;
	}

	public void setRigSlots(List<String> rigSlots) {
		this.rigSlots = rigSlots;
	}

	public List<String> getRigSlots() {
		return rigSlots;
	}

	public void setSubsystems(List<String> subsystems) {
		this.subsystems = subsystems;
	}

	public List<String> getSubsystems() {
		return subsystems;
	}
	
	public void setTurretName(String turretName) {
		this.turretName = turretName;
	}

	public String getTurretName() {
		return turretName;
	}

	public void setLauncherName(String launcherName) {
		this.launcherName = launcherName;
	}

	public String getLauncherName() {
		return launcherName;
	}

	public void setNbTurrets(long nbTurrets) {
		this.nbTurrets = nbTurrets;
	}

	public long getNbTurrets() {
		return nbTurrets;
	}
	
	public void incNbTurrets() {
		nbTurrets+=1;
	}

	public void setNbLaunchers(long nbLaunchers) {
		this.nbLaunchers = nbLaunchers;
	}

	public long getNbLaunchers() {
		return nbLaunchers;
	}
	
	public void incNbLaunchers() {
		nbLaunchers+=1;
	}

	public void setMaxHighSlots(long maxHighSlots) {
		this.maxHighSlots = maxHighSlots;
	}

	public long getMaxHighSlots() {
		return maxHighSlots;
	}
	
	public void addHighSlots(long high) {
		maxHighSlots+=high;
	}

	public void setMaxMedSlots(long maxMedSlots) {
		this.maxMedSlots = maxMedSlots;
	}

	public long getMaxMedSlots() {
		return maxMedSlots;
	}
	
	public void addMedSlots(long med) {
		maxMedSlots+=med;
	}

	public void setMaxRigSlots(long maxRigSlots) {
		this.maxRigSlots = maxRigSlots;
	}

	public long getMaxRigSlots() {
		return maxRigSlots;
	}

	public void setMaxLowSlots(long maxLowslots) {
		this.maxLowSlots = maxLowslots;
	}

	public long getMaxLowSlots() {
		return maxLowSlots;
	}
	
	public void addLowSlots(long low) {
		maxLowSlots+=low;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getId() {
		return id;
	}

	public void setMaxTurrets(long maxTurrets) {
		this.maxTurrets = maxTurrets;
	}

	public long getMaxTurrets() {
		return maxTurrets;
	}
	
	public void addTurrets(long turrets) {
		maxTurrets+=turrets;
	}

	public void setMaxLaunchers(long maxLaunchers) {
		this.maxLaunchers = maxLaunchers;
	}

	public long getMaxLaunchers() {
		return maxLaunchers;
	}
	
	public void addLaunchers(long launchers) {
		maxLaunchers+=launchers;
	}

	public void setMaxCalibration(long maxCalibration) {
		this.maxCalibration = maxCalibration;
	}

	public long getMaxCalibration() {
		return maxCalibration;
	}

	public void setCalibration(long calibration) {
		this.calibration = calibration;
	}

	public long getCalibration() {
		return calibration;
	}	
	
	public void addCalibration(long upgradeCost) {
		calibration+=upgradeCost;
	}

	public void setDroneName(String droneName) {
		this.droneName = droneName;
	}

	public String getDroneName() {
		return droneName;
	}

	public void setNbDrones(long nbDrones) {
		this.nbDrones = nbDrones;
	}
	
	public void addNbDrones(long nbDrones) {
		this.nbDrones += nbDrones;
	}

	public long getNbDrones() {
		return nbDrones;
	}

	public void setTurretAmmoName(String turretAmmoName) {
		this.turretAmmoName = turretAmmoName;
	}

	public String getTurretAmmoName() {
		return turretAmmoName;
	}

	public void setLauncherAmmoName(String launcherAmmoName) {
		this.launcherAmmoName = launcherAmmoName;
	}

	public String getLauncherAmmoName() {
		return launcherAmmoName;
	}

	public void setMaxCpu(double maxCpu) {
		this.maxCpu = maxCpu;
	}

	public double getMaxCpu() {
		return maxCpu;
	}
	
	public void addMaxCpu(double cpu) {
		maxCpu+=cpu;
	}
	
	public void correctMaxCpu(double factor) {
		maxCpu*=factor;
	}

	public void setCpu(double cpu) {
		this.cpu = cpu;
	}

	public double getCpu() {
		return cpu;
	}
	
	public void addCpu(double cpu) {
		this.cpu+=cpu;
	}

	public void setAgility(double agility) {
		this.agility = agility;
	}

	public double getAgility() {
		return agility;
	}

	public void setEmAR(double emAR) {
		this.emAR = emAR;
	}

	public double getEmAR() {
		return emAR;
	}

	public void setThAR(double thAR) {
		this.thAR = thAR;
	}

	public double getThAR() {
		return thAR;
	}

	public void setKiAR(double kiAR) {
		this.kiAR = kiAR;
	}

	public double getKiAR() {
		return kiAR;
	}

	public void setExAR(double exAR) {
		this.exAR = exAR;
	}

	public double getExAR() {
		return exAR;
	}

	public void setArmorHP(double armorHP) {
		this.armorHP = armorHP;
	}

	public double getArmorHP() {
		return armorHP;
	}
	
	public void addArmorHP(double armorHP) {
		this.armorHP+=armorHP;
	}

	public void setWarpSpeed(double warpSpeed) {
		this.warpSpeed = warpSpeed;
	}

	public double getWarpSpeed() {
		return warpSpeed;
	}

	public void setCapacitor(double capacitor) {
		this.capacitor = capacitor;
	}

	public double getCapacitor() {
		return capacitor;
	}
	
	public void addCapacitor(double capacitor) {
		this.capacitor += capacitor;
	}

	public void setMaxDroneBw(double maxDroneBw) {
		this.maxDroneBw = maxDroneBw;
	}

	public double getMaxDroneBw() {
		return maxDroneBw;
	}

	public void setDroneCapacity(double droneCapacity) {
		this.droneCapacity = droneCapacity;
	}

	public double getDroneCapacity() {
		return droneCapacity;
	}

	public void setStructResonance(double structResonance) {
		this.structResonance = structResonance;
	}
	
	public void correctStructResonance(double b) {
		this.structResonance *= b;
	}

	public double getStructResonance() {
		return structResonance;
	}

	public void setStructHP(double structHP) {
		this.structHP = structHP;
	}

	public double getStructHP() {
		return structHP;
	}

	public void setMaxTarget(double maxTarget) {
		this.maxTarget = maxTarget;
	}

	public double getMaxTarget() {
		return maxTarget;
	}

	public void setTargetRange(double targetRange) {
		this.targetRange = targetRange;
	}

	public double getTargetRange() {
		return targetRange;
	}

	public void setVelocity(double velocity) {
		this.velocity = velocity;
	}

	public double getVelocity() {
		return velocity;
	}

	public void setMaxPower(double maxPower) {
		this.maxPower = maxPower;
	}

	public double getMaxPower() {
		return maxPower;
	}

	public void setCapRechargeTime(double capRechargeTime) {
		this.capRechargeTime = capRechargeTime;
	}

	public double getCapRechargeTime() {
		return capRechargeTime;
	}

	public void setSensorStrength(double sensorStrength) {
		this.sensorStrength = sensorStrength;
	}
	
	public void correctSensorStrength(double s) {
		this.sensorStrength *= s;
	}

	public double getSensorStrength() {
		return sensorStrength;
	}

	public void setScanResolution(double scanResolution) {
		this.scanResolution = scanResolution;
	}

	public double getScanResolution() {
		return scanResolution;
	}

	public void setEmSR(double emSR) {
		this.emSR = emSR;
	}

	public double getEmSR() {
		return emSR;
	}
	
	public void correctEmSR(double c) {
		this.emSR *= c;
	}
	
	public void correctThSR(double c) {
		this.thSR *= c;
	}
	
	public void correctKiSR(double c) {
		this.kiSR *= c;
	}
	
	public void correctExSR(double c) {
		this.exSR *= c;
	}
	
	public void correctEmAR(double c) {
		this.emAR *= c;
	}
	
	public void correctThAR(double c) {
		this.thAR *= c;
	}
	
	public void correctKiAR(double c) {
		this.kiAR *= c;
	}
	
	public void correctExAR(double c) {
		this.exAR *= c;
	}

	public void setThSR(double thSR) {
		this.thSR = thSR;
	}

	public double getThSR() {
		return thSR;
	}

	public void setKiSR(double kiSR) {
		this.kiSR = kiSR;
	}

	public double getKiSR() {
		return kiSR;
	}

	public void setExSR(double exSR) {
		this.exSR = exSR;
	}

	public double getExSR() {
		return exSR;
	}

	public void setShieldHP(double shieldHP) {
		this.shieldHP = shieldHP;
	}

	public double getShieldHP() {
		return shieldHP;
	}
	
	public void addShieldHP(double shieldHP) {
		this.shieldHP+=shieldHP;
	}

	public void setShieldRechTime(double shieldRechTime) {
		this.shieldRechTime = shieldRechTime;
	}

	public double getShieldRechTime() {
		return shieldRechTime;
	}

	public void setSignature(double signature) {
		this.signature = signature;
	}

	public double getSignature() {
		return signature;
	}

	public void setCargohold(double cargohold) {
		this.cargohold = cargohold;
	}
	
	public void addCargohold(double cargohold) {
		this.cargohold += cargohold;
	}
	
	public void correctCargohold(double b) {
		this.cargohold *= b;
	}

	public double getCargohold() {
		return cargohold;
	}

	public void setDroneBw(double droneBw) {
		this.droneBw = droneBw;
	}

	public double getDroneBw() {
		return droneBw;
	}
	
	public void addDroneBw(double droneBw) {
		this.droneBw += droneBw;
	}

	public void setDroneAlpha(double droneAlpha) {
		this.droneAlpha = droneAlpha;
	}

	public double getDroneAlpha() {
		return droneAlpha;
	}

	public void setDroneTracking(double droneTracking) {
		this.droneTracking = droneTracking;
	}
	
	public void correctDroneTracking(double b) {
		this.droneTracking *= b;
	}

	public double getDroneTracking() {
		return droneTracking;
	}

	public void setDroneVelocity(double droneVelocity) {
		this.droneVelocity = droneVelocity;
	}

	public double getDroneVelocity() {
		return droneVelocity;
	}

	public void setDroneSignature(double droneSignature) {
		this.droneSignature = droneSignature;
	}

	public double getDroneSignature() {
		return droneSignature;
	}

	public void setDroneFalloff(double droneFalloff) {
		this.droneFalloff = droneFalloff;
	}

	public double getDroneFalloff() {
		return droneFalloff;
	}

	public void setDroneRof(double droneRof) {
		this.droneRof = droneRof;
	}

	public double getDroneRof() {
		return droneRof;
	}

	public void setDroneOptimal(double droneOptimal) {
		this.droneOptimal = droneOptimal;
	}

	public double getDroneOptimal() {
		return droneOptimal;
	}

	public void setPower(double power) {
		this.power = power;
	}

	public double getPower() {
		return power;
	}
	
	public void addPower(double power) {
		this.power+=power;
	}
	
	public void addMaxPower(double power) {
		this.maxPower+=power;
	}

	public void setMissileRof(double missileRof) {
		this.missileRof = missileRof;
	}

	public double getMissileRof() {
		return missileRof;
	}

	public void setMissileFlightTime(double missileFlightTime) {
		this.missileFlightTime = missileFlightTime;
	}

	public double getMissileFlightTime() {
		return missileFlightTime;
	}

	public void setMissileVelocity(double missileVelocity) {
		this.missileVelocity = missileVelocity;
	}

	public double getMissileVelocity() {
		return missileVelocity;
	}

	public void setMissileDRF(double missileDRF) {
		this.missileDRF = missileDRF;
	}
	
	public void correctMissileDRF(double b) {
		this.missileDRF *= b;
	}

	public double getMissileDRF() {
		return missileDRF;
	}

	public void setMissileExploRadius(double missileExploRadius) {
		this.missileExploRadius = missileExploRadius;
	}

	public double getMissileExploRadius() {
		return missileExploRadius;
	}

	public void setMissileExploVelocity(double missileExploVelocity) {
		this.missileExploVelocity = missileExploVelocity;
	}

	public double getMissileExploVelocity() {
		return missileExploVelocity;
	}

	public void setMissileAlpha(double missileAlpha) {
		this.missileAlpha = missileAlpha;
	}

	public double getMissileAlpha() {
		return missileAlpha;
	}

	public void setTurretAlpha(double turretAlpha) {
		this.turretAlpha = turretAlpha;
	}

	public double getTurretAlpha() {
		return turretAlpha;
	}

	public void setTurretOptimal(double turretOptimal) {
		this.turretOptimal = turretOptimal;
	}

	public double getTurretOptimal() {
		return turretOptimal;
	}

	public void setTurretFalloff(double turretFalloff) {
		this.turretFalloff = turretFalloff;
	}

	public double getTurretFalloff() {
		return turretFalloff;
	}

	public void setTurretTracking(double turretTracking) {
		this.turretTracking = turretTracking;
	}

	public double getTurretTracking() {
		return turretTracking;
	}

	public void setTurretSignature(double turretSignature) {
		this.turretSignature = turretSignature;
	}

	public double getTurretSignature() {
		return turretSignature;
	}

	public void setTurretRof(double turretRof) {
		this.turretRof = turretRof;
	}

	public double getTurretRof() {
		return turretRof;
	}
	
	public void addDroneCapacity(double droneCapacity) {
		this.droneCapacity+=droneCapacity;
	}

	public void setMissileTech2(boolean missileTech2) {
		this.missileTech2 = missileTech2;
	}

	public boolean isMissileTech2() {
		return missileTech2;
	}

	public void setTurretTech2(boolean turretTech2) {
		this.turretTech2 = turretTech2;
	}

	public boolean isTurretTech2() {
		return turretTech2;
	}

	public void setDroneTech2(boolean droneTech2) {
		this.droneTech2 = droneTech2;
	}

	public boolean isDroneTech2() {
		return droneTech2;
	}

	public void setMaxDrones(long maxDrones) {
		this.maxDrones = maxDrones;
	}

	public long getMaxDrones() {
		return maxDrones;
	}

	public void setDroneRange(double droneRange) {
		this.droneRange = droneRange;
	}
	
	public void correctDroneRange(double b) {
		this.droneRange *= b;
	}
	
	public void addDroneRange(double droneRange) {
		this.droneRange += droneRange;
	}

	public double getDroneRange() {
		return droneRange;
	}

	public void setTorpedo(boolean torpedo) {
		this.torpedo = torpedo;
	}

	public boolean isTorpedo() {
		return torpedo;
	}

	public void setBooster(boolean booster) {
		this.booster = booster;
	}

	public boolean hasBooster() {
		return booster;
	}

	public void correctTargetRange(double d) {
		targetRange*=d;
	}

	public void correctScanResolution(double d) {
		scanResolution*=d;
	}

	public void correctDroneAlpha(double d) {
		droneAlpha*=d;		
	}

	public void correctDroneVelocity(double d) {
		droneVelocity*=d;
	}

	public void correctDroneOptimal(double d) {
		droneOptimal*=d;
	}

	public void correctCapacitor(double d) {
		capacitor*=d;	
	}

	public void correctCapRechargeTime(double d) {
		capRechargeTime*=d;
	}

	public void correctMaxPower(double d) {
		maxPower*=d;
	}

	public void correctShieldHP(double d) {
		shieldHP*=d;	
	}

	public void correctShieldRechTime(double d) {
		shieldRechTime*=d;	
	}

	public void correctTurretRof(double d) {
		turretRof*=d;
	}

	public void correctTurretAlpha(double d) {
		turretAlpha*=d;
	}

	public void correctTurretTracking(double d) {
		turretTracking*=d;
	}

	public void correctTurretOptimal(double d) {
		turretOptimal*=d;
	}

	public void correctTurretFalloff(double d) {
		turretFalloff*=d;
	}

	public void correctArmorHP(double d) {
		armorHP*=d;
	}

	public void correctStructHP(double d) {
		structHP*=d;
	}

	public void correctMissileAlpha(double d) {
		missileAlpha*=d;
	}

	public void correctMissileExploRadius(double d) {
		missileExploRadius*=d;
	}

	public void correctMissileFlightTime(double d) {
		missileFlightTime*=d;	
	}

	public void correctMissileRof(double d) {
		missileRof*=d;
	}

	public void correctMissileVelocity(double d) {
		missileVelocity*=d;
	}

	public void correctMissileExploVelocity(double d) {
		missileExploVelocity*=d;
	}

	public void correctAgility(double d) {
		agility*=d;
	}

	public void correctVelocity(double d) {
		velocity*=d;
	}

	public void setRemoteArmorAmount(double remoteArmorAmount) {
		this.remoteArmorAmount = remoteArmorAmount;
	}

	public double getRemoteArmorAmount() {
		return remoteArmorAmount;
	}

	public void setRemoteArmorRof(double remoteArmorRof) {
		this.remoteArmorRof = remoteArmorRof;
	}

	public double getRemoteArmorRof() {
		return remoteArmorRof;
	}

	public void setRemoteShieldAmount(double remoteShieldAmount) {
		this.remoteShieldAmount = remoteShieldAmount;
	}

	public double getRemoteShieldAmount() {
		return remoteShieldAmount;
	}

	public void setRemoteShieldRof(double remoteShieldRof) {
		this.remoteShieldRof = remoteShieldRof;
	}

	public double getRemoteShieldRof() {
		return remoteShieldRof;
	}

	public void setArmorRepair(double armorRepair) {
		this.armorRepair = armorRepair;
	}
	
	public void addArmorRepair(double armorRepair) {
		this.armorRepair += armorRepair;
	}
	
	public void correctArmorRepair(double armorRepair) {
		this.armorRepair *= armorRepair;
	}

	public double getArmorRepair() {
		return armorRepair;
	}

	public void setArmorRepairDuration(double armorRepairDuration) {
		this.armorRepairDuration = armorRepairDuration;
	}

	public double getArmorRepairDuration() {
		return armorRepairDuration;
	}
	
	public void correctArmorRepairDuration(double armorRepairDuration) {
		this.armorRepairDuration *= armorRepairDuration;
	}

	public void setShieldBoostDuration(double shieldBoostDuration) {
		this.shieldBoostDuration = shieldBoostDuration;
	}
	
	public void correctShieldBoostDuration(double shieldBoostDuration) {
		this.shieldBoostDuration *= shieldBoostDuration;
	}

	public double getShieldBoostDuration() {
		return shieldBoostDuration;
	}

	public void setShieldBoost(double shieldBoost) {
		this.shieldBoost = shieldBoost;
	}
	
	public void addShieldBoost(double shieldBoost) {
		this.shieldBoost += shieldBoost;
	}
	

	public double getShieldBoost() {
		return shieldBoost;
	}
	
	public void correctShieldBoost(double shieldBoost) {
		this.shieldBoost *= shieldBoost;
	}

	public void setCapUsage(double capUsage) {
		this.capUsage = capUsage;
	}
	
	public void addCapUsage(double capUsage) {
		this.capUsage += capUsage;
	}

	public double getCapUsage() {
		return capUsage;
	}

	public void setMaxMissileDps(double maxMissileDps) {
		this.maxMissileDps = maxMissileDps;
	}

	public double getMaxMissileDps() {
		return maxMissileDps;
	}

	public void setMaxTurretDps(double maxTurretDps) {
		this.maxTurretDps = maxTurretDps;
	}

	public double getMaxTurretDps() {
		return maxTurretDps;
	}

	public void setMaxDroneDps(double maxDroneDps) {
		this.maxDroneDps = maxDroneDps;
	}

	public double getMaxDroneDps() {
		return maxDroneDps;
	}

	public void correctSignature(double d) {
		signature*=d;
	}

	public void setBoostRadiusFactor(double boostRadiusFactor) {
		this.boostRadiusFactor = boostRadiusFactor;
	}

	public double getBoostRadiusFactor() {
		return boostRadiusFactor;
	}

	public void setBoostVeloFactor(double boostVeloFactor) {
		this.boostVeloFactor = boostVeloFactor;
	}
	
	public void correctBoostVeloFactor(double boostVeloFactor) {
		this.boostVeloFactor *= boostVeloFactor;
	}

	public double getBoostVeloFactor() {
		return boostVeloFactor;
	}

	public void setBoostCapUsage(double boostCapUsage) {
		this.boostCapUsage = boostCapUsage;
	}
	
	public void correctBoostCapUsage(double boostCapUsage) {
		this.boostCapUsage *= boostCapUsage;
	}

	public double getBoostCapUsage() {
		return boostCapUsage;
	}

	public void setBoostMass(double boostMass) {
		this.boostMass = boostMass;
	}

	public double getBoostMass() {
		return boostMass;
	}

	public void setBoostedVelocity(double boostedVelocity) {
		this.boostedVelocity = boostedVelocity;
	}

	public double getBoostedVelocity() {
		return boostedVelocity;
	}
	
	public void addSignature(double sig) {
		signature+=sig;
	}

	public void setHighSlotsIcon(List<Integer> highSlotsIcon) {
		this.highSlotsIcon = highSlotsIcon;
	}

	public List<Integer> getHighSlotsIcon() {
		return highSlotsIcon;
	}

	public void setMedSlotsIcon(List<Integer> medSlotsIcon) {
		this.medSlotsIcon = medSlotsIcon;
	}

	public List<Integer> getMedSlotsIcon() {
		return medSlotsIcon;
	}

	public void setLowSlotsIcon(List<Integer> lowSlotsIcon) {
		this.lowSlotsIcon = lowSlotsIcon;
	}

	public List<Integer> getLowSlotsIcon() {
		return lowSlotsIcon;
	}

	public void setRigSlotsIcon(List<Integer> rigSlotsIcon) {
		this.rigSlotsIcon = rigSlotsIcon;
	}

	public List<Integer> getRigSlotsIcon() {
		return rigSlotsIcon;
	}

	public void setSubsystemsIcon(List<Integer> subsystemsIcon) {
		this.subsystemsIcon = subsystemsIcon;
	}

	public List<Integer> getSubsystemsIcon() {
		return subsystemsIcon;
	}

	public void setShipId(long shipId) {
		this.shipId = shipId;
	}

	public long getShipId() {
		return shipId;
	}

	public void setEftFit(String eftFit) {
		this.eftFit = eftFit;
	}

	public String getEftFit() {
		return eftFit;
	}

	public void setMaker(String maker) {
		this.maker = maker;
	}

	public String getMaker() {
		return maker;
	}

	public void setCloak(boolean cloak) {
		this.cloak = cloak;
	}

	public boolean getCloak() {
		return cloak;
	}

	public void setScramble(boolean scramble) {
		this.scramble = scramble;
	}

	public boolean getScramble() {
		return scramble;
	}

	public void setEcm(boolean ecm) {
		this.ecm = ecm;
	}

	public boolean getEcm() {
		return ecm;
	}

	public void setWeb(boolean web) {
		this.web = web;
	}

	public boolean getWeb() {
		return web;
	}

	public void setWarpImmune(boolean warpImmune) {
		this.warpImmune = warpImmune;
	}

	public boolean getWarpImmune() {
		return warpImmune;
	}

	public void setPaint(boolean paint) {
		this.paint = paint;
	}

	public boolean getPaint() {
		return paint;
	}

	public void setTrackingDisrupt(boolean trackingDisrupt) {
		this.trackingDisrupt = trackingDisrupt;
	}

	public boolean getTrackingDisrupt() {
		return trackingDisrupt;
	}

	public void setNos(boolean nos) {
		this.nos = nos;
	}

	public boolean getNos() {
		return nos;
	}

	public void setNeutra(boolean neutra) {
		this.neutra = neutra;
	}

	public boolean getNeutra() {
		return neutra;
	}

	public void setDamp(boolean damp) {
		this.damp = damp;
	}

	public boolean getDamp() {
		return damp;
	}

	public void setCapship(boolean capship) {
		this.capship = capship;
	}

	public boolean getCapship() {
		return capship;
	}

	public void setRemoteShield(boolean remoteShield) {
		this.remoteShield = remoteShield;
	}

	public boolean getRemoteShield() {
		return remoteShield;
	}

	public void setRemoteArmor(boolean remoteArmor) {
		this.remoteArmor = remoteArmor;
	}

	public boolean getRemoteArmor() {
		return remoteArmor;
	}

	public void setBoostedMass(double boostedMass) {
		this.boostedMass = boostedMass;
	}

	public double getBoostedMass() {
		return boostedMass;
	}

	public void setCynosural(boolean cynosural) {
		this.cynosural = cynosural;
	}

	public boolean getCynosural() {
		return cynosural;
	}

	public void setTurretCapa(double turretCapa) {
		this.turretCapa = turretCapa;
	}

	public double getTurretCapa() {
		return turretCapa;
	}

	public void setTargetPaintMod(double targetPaintMod) {
		this.targetPaintMod = targetPaintMod;
	}

	public double getTargetPaintMod() {
		return targetPaintMod;
	}
	
	public void correctTargetPaintMod(double d) {
		this.targetPaintMod *= d;
	}

	public void setTargetSpeedMod(double targetSpeedMod) {
		this.targetSpeedMod = targetSpeedMod;
	}

	public double getTargetSpeedMod() {
		return targetSpeedMod;
	}
	
	public void correctTargetSpeedMod(double d) {
		this.targetSpeedMod *= d;
	}
	
}
